Zoom-Capable Scrollbar

ABSTRACT

A graphical user interface displays a coarse control scrollbar to provide a user with coarse resolution sequential data control and a magnified view scrollbar proximate to the coarse control scrollbar. The magnified view scrollbar provides the user with fine resolution sequential data control. When the cursor is on the scrollbar, an overlay is opened which is a zoomed version of the scrollbar. The zoom range of the overlay is adjustable and can either be preset by the user or set during the zooming operation. When operating the overlay, a menu is available which allows the user to choose between zooming up or down to select the desired position.

CROSS-REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. application Ser. No.09/725,503, filed on Nov. 30, 2000.

FIELD OF THE INVENTION

This disclosure relates to a graphical user interface system, methods,and program product. More particularly, this disclosure relatesgenerally to a zoom-capable scrollbar for use in a graphical userinterface system, method, and program.

BACKGROUND

Scrollbars are user interface tools that allow users to navigate overdata that is presented in a sequential manner. In operation, a slider ofa scrollbar moves in proportion to the position in a file. For example,media players for audio or video have a scrollbar with a slider which,when it is at the left-end of the bar indicates that the player isplaying the beginning of the file, when at the right-end indicates thatthe player is playing the end of the file, and when somewhere in betweenindicating that the player is playing that portion of the data which issomewhere in between as indicated by the position of the slider. Theuser can move the slider to access the data at desired points in thepresentation. Any Graphical User Interface (GUI) that presentsinformation in a window is capable of utilizing scrollbars, such as wordprocessing programs, spreadsheets, databases, graphical presentationprograms, audio players, and video players.

Increasingly, audio and video players are being used in a graphical userinterface setting, such as in a computer or web-TV. Although such audioand video players are becoming standard with the increased use of DVDand CD technology, the resolution tuning available to such players failto allow fine resolution sequential data control. As an example, ascrollbar in a media player may be 4 inches long and represent 2 hoursof video. Manipulation of a slider to locate fine temporal positions inthe video becomes very difficult for a user. Slight movement of theslider can translate to a jump of several minutes of video. Often theuser desires finer control of the seek function, but such control hasheretofore not been available. What is needed is a graphical userinterface that displays a coarse control scrollbar to provide a userwith coarse resolution sequential data control and a magnified viewscrollbar to provide the user with fine resolution sequential datacontrol.

SUMMARY

The present disclosure is drawn to a graphical user interface methodthat includes displaying a coarse control scrollbar in a graphical userinterface to provide a user with coarse resolution sequential datacontrol. The disclosure further includes displaying a magnified viewscrollbar in the graphical user interface proximate to the coarsecontrol scrollbar. The magnified view scrollbar provides the user withfine resolution sequential data control.

The present disclosure introduces zoom capability to the scrollbar. If auser activates the visual menu, such as by clicking on the right mousebutton, while the cursor is on the scrollbar slider, an overlay isdisplayed. This overlay is a zoomed version of the scrollbar, which istypically centered adjacent to the position of the original scrollbarslider. The range of the new zoomed scrollbar can be determined by apreset parameter that the user can select.

Zooming can be continued in cascading fashion. When a user is already ina zoomed scrollbar mode, the user can again activate a visual menu whenthe cursor is on the zoomed scrollbar slider. This further activationcauses a visual menu to appear which allows the user to choose betweenzooming up or down.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram of a computer that stores theprogram to perform a nested resolution scrollbar function.

FIG. 2 is a graphical user interface showing a coarse resolutionscrollbar.

FIG. 3 is a graphical user interface showing a magnified view scrollbar.

FIG. 4 shows an alternative embodiment of the present disclosure wherezooming can continue in a cascading fashion.

FIG. 5 is a flow diagram of a sequence of operational steps for thenested resolution scrollbar program.

FIG. 6 is a diagram showing the zoom capable scrollbar implemented witha linear position register.

FIG. 7 is an alternate embodiment showing the magnification range of themagnified view scrollbar.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 is a functional block diagram of a desktop computer 100 thatstores the program to perform a nested resolution scrollbar function. (Aperson of ordinary skill in the art will recognize that the zoom capablescrollbar as described herein can be used with any interface, such as aGUI. Thus, the zoom capable scrollbar could be used in systems fromWEBTV, Hand-Held Communication Devices, Wireless Web via digital phones,etc. The use of “desktop computer” herein is by example only and isintended to encompass any GUI that presents information in a window.)The desktop computer 100 of FIG. 1 includes a memory 102 connected tothe system bus 104, the keyboard adapter 106, the disk drive 108, thecentral processor 110, and the mouse adapter 112. The memory 102 of FIG.1 includes a number of operational buffers that are used in conjunctionwith the nested resolution scrollbar program of FIG. 5, to carry out themethod of the scrollbar. The buffers included in the memory 102 are themaximum length buffer 120, and the minimum granularity unit buffer 122.Additional buffers include the course level position buffer P4,124, themedium level position buffer P3,126, the fine level position bufferP2,128, and the extra fine level position buffer P1,130. Additionalbuffers in the memory 102 include the coarse level window buffer W4,132,the medium level window buffer W3,134, the fine level window bufferW2,136, and the extra fine level window buffer W1,138. In addition, theabsolute output position buffer X,140 is included in the memory 102.

The memory 102 also stores the nested resolution scrollbar program 150,whose details are described below in FIG. 5 which is a flow diagram ofthe sequence of operational steps for the nested resolution scrollbar.Also included in the memory 102 is the operating system program 114. Theprogram stored in the memory 102 are sequences of executableinstructions, which when executed in the central processor 110, carryout the method of the scrollbar.

The linear dimension to be traversed by the nested resolution scrollbarcan be in a variety of media:

[A] a geometric dimension measured from coarse to fine granularity suchas [1] coarse: being the number of kilometers in a parsec, [2] medium:being the number of centimeters in a kilometer, [3] fine: being thenumber of microns in a centimeter ([a] along a straight line on a flatplane, [b] along a curved line in a plane such as the circumference of acircle, or [c] along a curved line on a three dimensional surface, suchas a segment of a spiral on the surface of a cylinder.)[B] a dimension in time measured from coarse to fine granularity such as[1] coarse: the number of years in the Jurassic geological period, [2]medium: the number of days in a year, [3] fine: the number of seconds ina day, [4] extra fine: the number of milliseconds in a second.[C] a dimension in the presentation of a video movie that is two hourslong, with the video frame rate of thirty frames per second, thepresentation being measured from coarse to fine granularity such as [1]coarse: ten minute segments (30×60×10 frames), [2] medium: one minutesegments (30×60 frames). [3] fine: five second segments (30×5 frames),[4] extra fine: individual frames.

Each of these traversed dimensions has two characteristics:

[1] a specific maximum length along the dimension (e.g., a two hourvideo).[2] a specific minimum granularity unit (e.g., a frame of video).

FIG. 2 is a graphical user interface 201 showing a coarse resolutionscrollbar 210. For example, media players for audio or video have ascrollbar with a slider 220 which, when at the left-end of the bar at 0indicates that the player is playing the beginning of the file, when atthe right-end at 100 indicates that the player is playing the end of thefile, and when somewhere in between indicates that the player is playingthat portion of the data which is somewhere in between as indicated bythe position of the slider 220. The user can move the slider 220 toaccess the data at desired points in the presentation.

FIG. 3 is a graphical user interface 301 showing a magnified viewscrollbar 350. Coarse resolution scrollbar 310 includes slider 320, thebeginning of a file at 0, and the end of the file at 100. When an useractivates the visual menu, such as clicking on the right button on thecomputer's mouse, the magnified view scrollbar 350 appears on thescreen. Though in a preferred embodiment the magnified view scrollbar350 appears as an overlay on scrollbar 310, one of ordinary skill in theart will recognize that the magnified view scrollbar 350 is capable of adefault appearance anywhere on the screen according to user preference.One of ordinary skill in the art will further recognize that themagnified view scrollbar 350 can be moved to any position on the screenafter being activated by the user. The magnified view scrollbar 350 inFIG. 3 is shown as twice-original size, or 2× magnification, of thescrollbar 310. Magnified view scrollbar 350 thus allows the user toselect a “fine” position in the media operating on the graphical userinterface 301. When the magnified view scrollbar 350 is being displayedon the graphical user interface 301, the user can reposition themagnified view slider 351 to select the desired position through fineresolution sequential data control or navigation. Alternatively, theuser could operate the computer keyboard to initially select and/or toposition the slider 351. The user can preset the magnification of themagnified view scrollbar 350 to default upon opening to a desired degreeof magnification.

FIG. 4 shows an alternative embodiment of the present disclosure wherezooming can continue in a cascading fashion. In FIG. 4, a graphical userinterface 401 is shown with a magnified view scrollbar 450, a magnifiedview slider 451, and a coarse resolution scrollbar 410 including aslider 420 with the beginning of a file at 0 and the end of the file at100. When a user moves the cursor over the slider 420 and activates thevisual menu, the magnified view scrollbar 450 appears on the screen asan overlay. In this embodiment, when the magnified view scrollbar 450 isbeing displayed on the graphical user interface 401, the user can movethe cursor over the magnified slider 451, and activate a visual menu 460which allows the user to choose between zooming up or down to select thedesired position. As detailed in FIG. 3 above, the user could operatethe computer keyboard to initially select and/or position the slider 451to the desired position.

FIG. 5 is a flow diagram of a sequence of operational steps for thenested resolution scrollbar program. The method for a nested resolutionscrollbar is shown in FIG. 5 as an example of a two-hour video:

[1] divide the maximum length by the minimum granularity unit to get thetotal number of minimum granularity units in step 502 (In this example,a two hour video divided by the duration of a frame gives the totalnumber of frames which is 30×60×60×2=216,000 frames).[2] select the number of levels Q of resolution in step 504 (e.g., four:coarse, medium, fine, and extra fine) and call the levels L1, L2, L3,L4. (Here Q=4 levels).[3] select the number of minimum granularity units for the finest levelin step 506 and refer to the resolution at this level as the resolutionnumber N1 units (In this example, the finest level of granularity is oneframe, therefore, N1=1).[4] select the number of second level granularity units for the nextmost fine level in step 508 (In this example, fine: five second segments(30×5 frames)), and refer to the resolution at this level as theresolution number N2 units (therefore, N2=150).[5] select the number of third level granularity units for the next mostfine level in step 510 (In this example, medium: one minute segments(30×60 frames)), and refer to the resolution at this level as theresolution number N3 units (therefore, N3=1,800).[6] select the number of fourth level granularity units for the nextmost fine level in step 512 (In this example, coarse: ten minutesegments (30×60×10 frames)), and refer to the resolution at this levelas the resolution number N4 units (therefore, N4=18,000).[7] allocate Q position buffers in the computer memory in step 514 (Inthis example, four buffers), one for each resolution: e.g., fourpositions P1, P2, P3, P4. The value of “P” will be the relative positionof the slider within the window of size “W” at resolution level “L”.[8] allocate Q window-size buffers in the computer memory in step 516(In this example, four buffers: W1, W2, W3, and W4.

W1=1 (one frame)

W2=150 (i.e., the fine window W2 contains 150 of the W1 windows)

W3=12 (i.e., the medium window W3 contains 12 of the W2 windows)

W4=10 (i.e., the coarse window W4 contains 10 of the W3 windows))

[9] For level 4: select the coarse (fourth level L=4) slider S4, measurethe position of slider S4 within the coarse window W4 in units of W3.(e.g., in a two-hour video (W4), position the cursor at thirty minutesinto the movie in step 518 (three units of W3 (ten minutes) in length))[10] For level 4: store the value “3” in the level L=4 position bufferin step 520 (P4=3). Display slider S4.[11] For level 3: select the medium (third level L=3) slider S3, measurethe position of slider S3 within the medium window W3 in units of W2 instep 522. (e.g., in a ten-minute segment (W3), position the cursor attwo minutes into the segment (two units of W2 (one minute) in length))

[12] For level 3: store the value “2” in the level L=3 position bufferin step 524 (P3=2). Display slider S3.

[13] For level 2: select the fine (second level L=2) slider S2, measurethe position of slider S2 within the fine window W2 in units of W1 instep 526. (e.g., in a one minute segment (W2), position the cursor at 20seconds into the segment (600 units of W1 (one frame is 1/30th of asecond) in length))

[14] For level 2: store the value “600” in the level L=2 position bufferin step 528 (P3=600). Display slider S2. [15] Output the absoluteposition X of the cursor with respect to the beginning point of thecoarse window in step 530, in units of the minimum granularity units, asX=P1×P2×P3×P4.

The zoom capable scrollbar can also be implemented as shown in FIG. 6. Alinear position register 105 is partitioned in the memory storage device150 of the computer 100. The linear position register 105 is a two-bytebuffer with a low order byte of 8 bits and a high order byte of 8 bits.The 16 bits of the linear position register 105 can span a range of 2¹⁶units. The linear dimension that is to be traversed by the zoom capablescrollbar can be divided into 2¹⁶ units from its initial position to itsfinal position. The low order byte of the linear position register 105has a 4^(th) level granularity of 1 unit for the low order 4 bits of thelow order byte as shown in FIG. 6. In this manner, a value from 0 to 15corresponds to 1-unit increments along the dimension being traversed bythe zoom capable scrollbar. The high order 4 bits of the low order byteof the linear position register 105 correspond to the third levelgranularity of 16 units. In the third level, each value from 0 to 15corresponds to traversing 16 units along the dimension being traversedby the zoom capable scrollbar. For the high order byte of 8 bits in thelinear position register 105, the low order 4 bits correspond to thesecond level granularity of 256 units. For every value of from 0 to 15,a distance of 256 units is being traversed along the dimension beingtraversed by the zoom capable scrollbar. Lastly, the high order 4 bitsof the high order byte in the linear position register 105 of FIG. 6corresponds to a first level granularity of 4,096 units. For every valuefrom 0 to 15, a distance of 4,096 units is being traversed along thedimension being traversed by the zoom capable scrollbar.

When the coarse scrollbar slider 420 is selected in the window displayedin FIG. 6, the first level granularity portion of the linear positionregister 105 is selected. The distance from the beginning to the end ofthe dimension being traversed by the zoom capable scrollbar is measuredin units of 4,096 units or 16 divisions from beginning to end, forexample, from the left side of the screen to the right side of thescreen in FIG. 6. When the user selects the second level scrollbarslider 451 in FIG. 6, the scrollbar slider 751 can traverse any one of16 units within the magnified view scrollbar 450, which corresponds to256 units for every increment of the slider 451. When the user selectsthe slider 451, the second level granularity portion of the linearposition register 105 is selected and the linear position of the slider451 within the magnified view scrollbar 450 can take one of 16 valueswhich is buffered in the second level granularity portion of the linearposition register 105.

When the user selects the third level scrollbar slider 461 within thevisual menu 460 of FIG. 6, the miniature scrollbar slider 461 can takeone of 16 positions corresponding to one of 16 values which are bufferedin the third granularity portion of the linear position 105. The usercan further select a 4^(th) level scrollbar slider (not shown) whichwould select 4^(th) level granularity portion of the linear positionregister 105, to enable traversing one unit along the dimension forevery increment of the 4^(th) level slider.

The magnified view scrollbar 750 in FIG. 7 is an alternate embodimentthat displays the magnification range as selected by the user (In thisexample, the ZOOM range is selected as 10:1). Magnified view scrollbar750 thus allows the user to select a fine position in the mediaoperating on the graphical user interface 701. When the magnified viewscrollbar 750 is being displayed on the graphical user interface 701,the user can reposition the magnified view slider 751 to select thedesired temporal position through fine resolution sequential datacontrol or navigation. Further, the user can activate furthermagnification of the magnified view slider 751 by adjusting themagnification to any desired range (For example, the user could adjustthe magnification range from 10:1 to 100:1, if desired, for a resolutionof 10 times the magnification of the magnified view slider 751).Alternatively, the user could operate the computer keyboard to initiallyselect and/or position the slider 751 to the desired position. The usercan set the magnification of the magnified view scrollbar 750 to defaultupon opening to a desired degree of magnification and then adjust thedegree of magnification as desired.

While various embodiments of the present disclosure have been describedabove, it should be understood that they have been presented by way ofexample, and not limitation. It will be apparent to persons skilled inthe relevant art that various changes in form and detail can be placedtherein without departing from the spirit and scope of the disclosure.Thus, the present disclosure should not be limited by any of theabove-described example embodiments, but should be defined only inaccordance with the following claims and their equivalents.

1. An apparatus for providing a nested resolution scrollbar in agraphical user interface, comprising: a memory; and at least oneprocessor coupled to the memory and operative to: display a coarsecontrol scrollbar in a graphical user interface to provide a user withcoarse resolution sequential data control; display a magnified viewscrollbar in the graphical user interface proximate to the coarsecontrol scrollbar, the magnified view scrollbar providing the user withfine resolution sequential data control; display a directional menu toprovide the user forward or backward sequential scrolling in a cascadingfashion; select a granularity level in a linear position register inresponse to selecting a level buffer; and buffer a position value in theselected granularity level of the register.
 2. An apparatus forproviding a nested resolution scrollbar in a graphical user interface,comprising: a memory; and at least one processor coupled to the memoryand operative to: divide a maximum length entity by a minimumgranularity unit to get a total number of minimum granularity units inthe entity; select a number of levels of resolution; select a number ofminimum granularity units for each level of resolution; allocate aposition buffer for each level of resolution; allocate a window-sizebuffer for each level of resolution; select a coarse scrollbar slider;measure the position of the scrollbar slider within the coarse window inunits of the subsequent level of resolution; and store the value of themeasured position of the scrollbar slider.
 3. An apparatus for providinga nested resolution scrollbar in a graphical user interface, comprising:a memory; and at least one processor coupled to the memory and operativeto: divide a maximum length entity by a minimum granularity unit to geta total number of minimum granularity units in the entity; select anumber of levels Q of resolution, as resolution levels L1, L2, L3, L4;select a number of minimum granularity units for a finest levelresolution as a resolution number N1 units; select a number of secondlevel granularity units for a next most fine level as a resolutionnumber N2 units; select a number of third level granularity units for anext most fine level as a resolution number N3 units; select a number offourth level granularity units for a next most fine level as aresolution number N4; allocate Q position buffers in the memory, one foreach resolution, for positions P1, P2, P3, P4; allocate Q window-sizebuffers in the memory W1, W2, W3, W4; select with a cursor a coarseslider S4; measure the position of slider S4 within the coarse window W4in units of W3; store the value of measured position of S4 in theposition buffer P4 and display slider S4; select with the cursor amedium slider S3; measure the position of slider S3 within the mediumwindow W3 in units of W2; store the value of measured position of S3 inthe position buffer P3 and display slider S3; select with the cursor afine slider S2; measure the position of slider S2 within the fine windowW2 in units of W1; store the value of measured position of S2 in theposition buffer P2 and display slider S2; and output an absoluteposition X of the cursor with respect to the beginning point of thecoarse window, in units of the minimum granularity units, asX=P1×P2×P3×P4.
 4. An article of manufacture for providing a nestedresolution scrollbar in a graphical user interface, comprising a machinereadable medium containing one or more programs which when executed by aprocessor coupled to a memory implement the steps of: displaying acoarse control scrollbar in a graphical user interface to provide a userwith coarse resolution sequential data control; displaying a magnifiedview scrollbar in the graphical user interface proximate to the coarsecontrol scrollbar, the magnified view scrollbar providing the user withfine resolution sequential data control; displaying a directional menuto provide the user forward or backward sequential scrolling in acascading fashion; selecting a granularity level in a linear positionregister in response to selecting a level buffer; and buffering aposition value in the selected granularity level of the register.
 5. Anarticle of manufacture for providing a nested resolution scrollbar in agraphical user interface, comprising a machine readable mediumcontaining one or more programs which when executed by a processorcoupled to a memory implement the steps of: dividing a maximum lengthentity by a minimum granularity unit to get a total number of minimumgranularity units in the entity; selecting a number of levels ofresolution; selecting a number of minimum granularity units for eachlevel of resolution; allocating a position buffer for each level ofresolution; allocating a window-size buffer for each level ofresolution; selecting a coarse scrollbar slider; measuring the positionof the scrollbar slider within the coarse window in units of thesubsequent level of resolution; and storing the value of the measuredposition of the scrollbar slider.
 6. An article of manufacture forproviding a nested resolution scrollbar in a graphical user interface,comprising a machine readable medium containing one or more programswhich when executed by a processor coupled to a memory implement thesteps of: dividing a maximum length entity by a minimum granularity unitto get a total number of minimum granularity units in the entity;selecting a number of levels Q of resolution, as resolution levels L1,L2, L3, L4; selecting a number of minimum granularity units for a finestlevel resolution as a resolution number N1 units; selecting a number ofsecond level granularity units for a next most fine level as aresolution number N2 units; selecting a number of third levelgranularity units for a next most fine level as a resolution number N3units; selecting a number of fourth level granularity units for a nextmost fine level as a resolution number N4; allocating Q position buffersin the memory, one for each resolution, for positions P1, P2, P3, P4;allocating Q window-size buffers in the memory W1, W2, W3, W4; selectingwith a cursor a coarse slider S4; measuring the position of slider S4within the coarse window W4 in units of W3; storing the value ofmeasured position of S4 in the position buffer P4 and displaying sliderS4; select with the cursor a medium slider S3; measuring the position ofslider S3 within the medium window W3 in units of W2; storing the valueof measured position of S3 in the position buffer P3 and displayingslider S3; selecting with the cursor a fine slider S2; measuring theposition of slider S2 within the fine window W2 in units of W1; storingthe value of measured position of S2 in the position buffer P2 anddisplaying slider S2; and outputting an absolute position X of thecursor with respect to the beginning point of the coarse window, inunits of the minimum granularity units, as X=P1×P2×P3×P4.